package com.zd.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile;

import javax.validation.constraints.NotEmpty;
import java.util.Date;
import java.util.List;

/**
 * 工作台账表
 */
public class WorkInfo {

    //主键
    private Long id;

    //部门id
    private Long departmentid;

    //部门对象
    private Department department;

    //合作单位性质id
    private Long unitsnatureid;

    //合作单位性质对象
    private UnitsNature unitsNature;

    //合作单位名称
    private String unitscooperativename;

    //企业类型id
    private Long cooperativetypeid;

    //企业类型对象
    private CooperativeType cooperativeType;

    //企业规模id
    private Long scaleid;

    //企业规模对象
    private Scale scale;

    //外资属性id
    private Long foreignpropertyid;

    //外资属性对象
    private ForeignProperty foreignProperty;

    //行政区属id
    private Long administrativedistrictid;

    //行政区属对象
    private AdministrativeDistrict administrativeDistrict;

    //企业所在地id
    private Long enterpriselocationid;

    //企业所在地
    private EnterpriseLocation enterpriseLocation;

    //企业联系人及联系方式
    private String contactsname;

    //是否签署合作协议  1是  2否
    private Integer signagreement;

    //协议签署时间
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date signtime;

    //协议到期时间
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date expirationtime;

    //提示协议到期标识，0不提示，1提示，2已取消提示
    private Integer expirationtips;

    //项目分类id
    private Long projecttypeid;

    //项目分类对象
    private ProjectType projectType;

    //合作内容关联List
    private List<CooperativeContentRel> cooperativeContentRelList;

    //合作内容关联表id
    private Long cooperativecontentrelid;

    //本月工作进展情况
    private String workprogress;

    //下一步工作计划
    private String workplan;

    //阶段性工作成果
    private String workresult;

    //部门联系人以及联系方式
    private String departmentContactName;

    //备注
    private String remark;

    //企业协议地址
    private String agreementurl;

    //企业协议是否加密，0未加密，1加密
    private Integer protocolencryption;

    //企业协议地址List
    private List<String> agreementurlList;

    //企业协议地址 多文件上传所用
    private List<MultipartFile> agreementUpload;

    //企业法人资质地址
    private String legalPersonCertificateURL;

    //企业法人资质地址 上传用
    private MultipartFile legalPersonCertificateUpload;
    //营业执照地址
    private String businessLicenseURL;
    //营业执照地址 上传用
    private MultipartFile businessLicenseUpload;

    //企业资质
    private List<Qualifications> qualificationsList;

    //录入时间
    private Date entertime;

    //录入用户id
    private Long enteruserid;

    //用户信息对象
    private UserInfo userInfo;

    //逻辑删除标识  1未删 0已删
    private Integer flag;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getDepartmentid() {
        return departmentid;
    }

    public void setDepartmentid(Long departmentid) {
        this.departmentid = departmentid;
    }

    public Long getUnitsnatureid() {
        return unitsnatureid;
    }

    public void setUnitsnatureid(Long unitsnatureid) {
        this.unitsnatureid = unitsnatureid;
    }

    public String getUnitscooperativename() {
        return unitscooperativename;
    }

    public void setUnitscooperativename(String unitscooperativename) {
        this.unitscooperativename = unitscooperativename == null ? null : unitscooperativename.trim();
    }

    public Long getCooperativetypeid() {
        return cooperativetypeid;
    }

    public void setCooperativetypeid(Long cooperativetypeid) {
        this.cooperativetypeid = cooperativetypeid;
    }

    public Long getScaleid() {
        return scaleid;
    }

    public void setScaleid(Long scaleid) {
        this.scaleid = scaleid;
    }

    public Long getForeignpropertyid() {
        return foreignpropertyid;
    }

    public void setForeignpropertyid(Long foreignpropertyid) {
        this.foreignpropertyid = foreignpropertyid;
    }

    public String getContactsname() {
        return contactsname;
    }

    public void setContactsname(String contactsname) {
        this.contactsname = contactsname == null ? null : contactsname.trim();
    }

    public Integer getSignagreement() {
        return signagreement;
    }

    public void setSignagreement(Integer signagreement) {
        this.signagreement = signagreement;
    }

    public Date getSigntime() {
        return signtime;
    }

    public void setSigntime(Date signtime) {
        this.signtime = signtime;
    }

    public Long getProjecttypeid() {
        return projecttypeid;
    }

    public void setProjecttypeid(Long projecttypeid) {
        this.projecttypeid = projecttypeid;
    }

    public Long getCooperativecontentrelid() {
        return cooperativecontentrelid;
    }

    public void setCooperativecontentrelid(Long cooperativecontentrelid) {
        this.cooperativecontentrelid = cooperativecontentrelid;
    }

    public String getWorkprogress() {
        return workprogress;
    }

    public void setWorkprogress(String workprogress) {
        this.workprogress = workprogress == null ? null : workprogress.trim();
    }

    public String getWorkplan() {
        return workplan;
    }

    public void setWorkplan(String workplan) {
        this.workplan = workplan == null ? null : workplan.trim();
    }

    public String getWorkresult() {
        return workresult;
    }

    public void setWorkresult(String workresult) {
        this.workresult = workresult == null ? null : workresult.trim();
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

    public String getAgreementurl() {
        return agreementurl;
    }

    public void setAgreementurl(String agreementurl) {
        this.agreementurl = agreementurl == null ? null : agreementurl.trim();
    }

    public Date getEntertime() {
        return entertime;
    }

    public void setEntertime(Date entertime) {
        this.entertime = entertime;
    }

    public Long getEnteruserid() {
        return enteruserid;
    }

    public void setEnteruserid(Long enteruserid) {
        this.enteruserid = enteruserid;
    }

    public Integer getFlag() {
        return flag;
    }

    public void setFlag(Integer flag) {
        this.flag = flag;
    }

    public List<MultipartFile> getAgreementUpload() {
        return agreementUpload;
    }

    public void setAgreementUpload(List<MultipartFile> agreementUpload) {
        this.agreementUpload = agreementUpload;
    }


    public List<CooperativeContentRel> getCooperativeContentRelList() {
        return cooperativeContentRelList;
    }

    public void setCooperativeContentRelList(List<CooperativeContentRel> cooperativeContentRelList) {
        this.cooperativeContentRelList = cooperativeContentRelList;
    }


    public UnitsNature getUnitsNature() {
        return unitsNature;
    }

    public void setUnitsNature(UnitsNature unitsNature) {
        this.unitsNature = unitsNature;
    }

    public Department getDepartment() {
        return department;
    }

    public void setDepartment(Department department) {
        this.department = department;
    }

    public CooperativeType getCooperativeType() {
        return cooperativeType;
    }

    public void setCooperativeType(CooperativeType cooperativeType) {
        this.cooperativeType = cooperativeType;
    }

    public Scale getScale() {
        return scale;
    }

    public void setScale(Scale scale) {
        this.scale = scale;
    }

    public ForeignProperty getForeignProperty() {
        return foreignProperty;
    }

    public void setForeignProperty(ForeignProperty foreignProperty) {
        this.foreignProperty = foreignProperty;
    }

    public ProjectType getProjectType() {
        return projectType;
    }

    public void setProjectType(ProjectType projectType) {
        this.projectType = projectType;
    }

    public List<String> getAgreementurlList() {
        return agreementurlList;
    }

    public void setAgreementurlList(List<String> agreementurlList) {
        this.agreementurlList = agreementurlList;
    }

    public UserInfo getUserInfo() {
        return userInfo;
    }

    public void setUserInfo(UserInfo userInfo) {
        this.userInfo = userInfo;
    }

    public String getDepartmentContactName() {
        return departmentContactName;
    }

    public void setDepartmentContactName(String departmentContactName) {
        this.departmentContactName = departmentContactName;
    }

    public String getLegalPersonCertificateURL() {
        return legalPersonCertificateURL;
    }

    public void setLegalPersonCertificateURL(String legalPersonCertificateURL) {
        this.legalPersonCertificateURL = legalPersonCertificateURL;
    }

    public String getBusinessLicenseURL() {
        return businessLicenseURL;
    }

    public void setBusinessLicenseURL(String businessLicenseURL) {
        this.businessLicenseURL = businessLicenseURL;
    }

    public MultipartFile getLegalPersonCertificateUpload() {
        return legalPersonCertificateUpload;
    }

    public void setLegalPersonCertificateUpload(MultipartFile legalPersonCertificateUpload) {
        this.legalPersonCertificateUpload = legalPersonCertificateUpload;
    }

    public MultipartFile getBusinessLicenseUpload() {
        return businessLicenseUpload;
    }

    public void setBusinessLicenseUpload(MultipartFile businessLicenseUpload) {
        this.businessLicenseUpload = businessLicenseUpload;
    }

    public List<Qualifications> getQualificationsList() {
        return qualificationsList;
    }

    public void setQualificationsList(List<Qualifications> qualificationsList) {
        this.qualificationsList = qualificationsList;
    }

    public Integer getProtocolencryption() {
        return protocolencryption;
    }

    public void setProtocolencryption(Integer protocolencryption) {
        this.protocolencryption = protocolencryption;
    }

    public Long getAdministrativedistrictid() {
        return administrativedistrictid;
    }

    public void setAdministrativedistrictid(Long administrativedistrictid) {
        this.administrativedistrictid = administrativedistrictid;
    }

    public AdministrativeDistrict getAdministrativeDistrict() {
        return administrativeDistrict;
    }

    public void setAdministrativeDistrict(AdministrativeDistrict administrativeDistrict) {
        this.administrativeDistrict = administrativeDistrict;
    }

    public Long getEnterpriselocationid() {
        return enterpriselocationid;
    }

    public void setEnterpriselocationid(Long enterpriselocationid) {
        this.enterpriselocationid = enterpriselocationid;
    }

    public EnterpriseLocation getEnterpriseLocation() {
        return enterpriseLocation;
    }

    public void setEnterpriseLocation(EnterpriseLocation enterpriseLocation) {
        this.enterpriseLocation = enterpriseLocation;
    }

    public Date getExpirationtime() {
        return expirationtime;
    }

    public void setExpirationtime(Date expirationtime) {
        this.expirationtime = expirationtime;
    }

    public Integer getExpirationtips() {
        return expirationtips;
    }

    public void setExpirationtips(Integer expirationtips) {
        this.expirationtips = expirationtips;
    }
}